package cn.quevo.core.lang;

public class ColumnConvertUtils {

    /**
     * 小驼峰命名
     * 
     * @author July july_sky@foxmail.com
     * @date 2017年8月14日下午12:42:31
     * @param attr
     * @return
     */
    public static String smallHump(String attr, boolean firstUp, boolean sub) {
        if (StringUtils.isBlank(attr)) {
            return attr;
        }
        String[] attrs = attr.toLowerCase().split("_");
        if (attrs.length <= 1) { // 如果只有一个元素
            return firstUp ? firstUpperCase(attrs[0]) : attrs[0];
        }
        if (sub && attrs.length <= 2) {
            return firstUp ? firstUpperCase(attrs[1]) : attrs[1];
        }
        StringBuffer attrStr = new StringBuffer(sub ? attrs[1] : attrs[0]);
        int i = sub ? 2 : 1;
        for (; i < attrs.length; i++) {
            if (StringUtils.isBlank(attrs[i])) {
                continue;
            }
            attrStr.append(attrs[i].substring(0, 1).toUpperCase()).append(attrs[i].substring(1));
        }
        return firstUp ? firstUpperCase(attrStr.toString()) : attrStr.toString();
    }

    /**
     * 首字母大写
     * 
     * @author July july_sky@foxmail.com
     * @date 2017年8月14日下午12:55:27
     * @param str
     * @return
     */
    public static String firstUpperCase(String str) {
        return str.substring(0, 1).toUpperCase() + str.substring(1);
    }
}
